home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / docs / mini / ZIP-Drive < prev    next >
Text File  |  1996-04-19  |  24KB  |  545 lines

  1.   ZIP-drive mini-HOWTO
  2.   Grant Guenther, grant@torque.net
  3.   v1.0, 15 April 1996
  4.  
  5.   The Iomega ZIP drive is a popular, removable media disk drive.  It is
  6.   available in two main versions, one has a SCSI interface and the other
  7.   connects to a parallel port.  This document describes how to use the
  8.   ZIP drive with Linux. It should be read in conjunction with the SCSI
  9.   HOWTO.
  10.  
  11.   1.  Introduction
  12.  
  13.   The Iomega ZIP drive is a popular, low-cost, low-performance,
  14.   portable, removable media disk drive.  Its disks have a capacity of 96
  15.   megabytes, and the drive is available in two main versions, a SCSI
  16.   version and a parallel port version. The parallel port version is
  17.   actually a SCSI device as well, configured to use Iomega's proprietary
  18.   PPA-3 SCSI-over-parallel protocol.
  19.  
  20.   This document describes how to use the ZIP drive with Linux.  Since
  21.   this is a SCSI device, it is important for you to read the SCSI HOWTO
  22.   as well.  That document gives a thorough introduction to the Linux
  23.   SCSI system.  It does not contain any specific information about the
  24.   ZIP drive, the ZIP Zoom SCSI host adapter or the PPA-3 parallel-to-
  25.   SCSI adapter.  This mini-HOWTO aims to fill those gaps.
  26.  
  27.   This document incorporates information collected and published by
  28.   others, in particular:
  29.  
  30.   ╖  Scot Wilcoxon, sewilco@fielday.mn.org
  31.  
  32.   ╖  Joe Mack, mack@ncifcrf.gov
  33.  
  34.   ╖  Byron Jeff, byron@cc.gatech.edu
  35.  
  36.   I thank them for their important contributions, and accept
  37.   responsibility for any errors that I have introduced.
  38.  
  39.   2.  The ZIP drive
  40.  
  41.   There are three versions of the Iomega ZIP 100 drive. They all accept
  42.   special cartridges resembling a 3.5" floppy disk that hold 100
  43.   megabytes of data.  The disks actually hold 96 cylinders of 2048
  44.   sectors each holding 512 bytes.  This would normally be called 96
  45.   Megabytes.
  46.  
  47.   One version is a half-height 5.25" internal drive, with a SCSI
  48.   interface, the other two are external drives in a small blue
  49.   lightweight plastic enclosure, powered by an external wall brick.  The
  50.   external drives come in a SCSI version and a parallel port version.
  51.  
  52.   All the drives have a large pushbutton on the front of the drive.
  53.   This is used to eject the disk.  Linux locks the door while using the
  54.   drive, but if the button is pressed while the door is locked, the ZIP
  55.   drive will remember and eject the disk as soon as the software unlocks
  56.   it.
  57.  
  58.   2.1.  SCSI version
  59.  
  60.   The external SCSI version of the ZIP drive has two DB25F connectors,
  61.   and two configuration switches.  One switch selects the drive's target
  62.   address: the choice is limited to target 5 or 6.  The other enables an
  63.   internal terminator, in case the drive is the last one on a chain.
  64.   The 25 pin SCSI connectors use the familiar Macintosh style wiring.
  65.   The drive is shipped with a Macintosh type cable, but standard cables
  66.   and converters are easily obtained if you are using a host adapter
  67.   with a Centronics or high-density connector.
  68.  
  69.   I have not seen an internal SCSI drive, but I would expect it to have
  70.   a standard 50 pin DIP header SCSI connector and the same two switches.
  71.  
  72.   Make sure that the target address you choose does not conflict with
  73.   any other SCSI devices you may have on the same bus.  Also be sure
  74.   that the physically last drive in a chain has termination enabled, or
  75.   an external terminator installed.
  76.  
  77.   If you have an internal SCSI disk or CD-rom, and you connect your ZIP
  78.   drive to the existing adapter, you should check to see if there are
  79.   any terminators on the card that must be removed.  Only the two
  80.   extreme ends of the SCSI bus should be terminated.  If your bus is
  81.   partly internal and partly external, there should be one terminator on
  82.   the last external device and one on the last internal device, but no
  83.   terminators on the adapter card itself.
  84.  
  85.   Be sure that all cables are firmly attached.
  86.  
  87.   2.2.  The ZIP Zoom host adapter
  88.  
  89.   Iomega markets a SCSI host adapter under the name ZIP Zoom.  This is
  90.   actually based on the design of the Adaptec AHA1520 family of
  91.   adapters.  It has an external Macintosh type DB25F connector,
  92.   compatible with the cable that comes with the ZIP drive.
  93.  
  94.   Linux supports this adapter with the aha152x driver.
  95.  
  96.   2.3.  Parallel port version
  97.  
  98.   The parallel port ZIP drive also has two DB25 connectors, the male
  99.   (DB25M) should be connected with the supplied parallel cable to your
  100.   computer's parallel port.  The other (female, DB25F) is intended to
  101.   support a chained printer.  Linux does not currently support
  102.   simultaneous use of both a ZIP drive and a chained printer.  A work-
  103.   around is possible using loadable modules.  There are no configuration
  104.   switches.
  105.  
  106.   The parallel port ZIP drive is compatible with several types of
  107.   parallel ports, but currently the Linux driver supports only the
  108.   Standard and bi-directional ports.  If your parallel port has
  109.   configuration switches (in hardware or on a CMOS setup screen) be sure
  110.   to set the port into one of those two modes.
  111.  
  112.   Be sure that all cables are firmly attached.
  113.  
  114.   3.  Configuring a kernel for the ZIP drive
  115.  
  116.   To use the ZIP drive with Linux, you must have a kernel configured
  117.   with support for the SCSI system, support for SCSI disks and support
  118.   for the host adapter you are using.  If you are not familiar with
  119.   building a kernel, you should go to /usr/src/linux and study the
  120.   README file found there.  There is also useful information in the
  121.   Documentation subdirectory in recent versions.
  122.  
  123.   You must begin the process of building a kernel with the configuration
  124.   step.  Here, you identify the specific kernel components that you
  125.   need.  make config is the traditional, sequential, question and answer
  126.   method of configuring the kernel.
  127.  
  128.   In recent kernels there are some new alternatives: make menuconfig
  129.   does the same thing with a menu oriented interface, and make xconfig
  130.   uses the tk toolkit to provide a version that is nice to use under X.
  131.  
  132.   Once you have configured your kernel, use make dep and make zLilo (or
  133.   make zImage if you don't use LILO) to compile the new kernel and
  134.   install it.  And, of course, don't forget to shutdown and reboot !
  135.  
  136.   You can also build all or part of the SCSI system as modules.  If you
  137.   do this, be sure to load scsi.o, then sd.o and finally the driver for
  138.   your host adapter, before you try to access the ZIP drive.
  139.  
  140.   3.1.  SCSI version
  141.  
  142.   If you already have a SCSI disk in your system, and you are connecting
  143.   the ZIP drive to the same controller, there is no additional kernel
  144.   configuration required.  Otherwise, you will most likely have to build
  145.   a new kernel.
  146.  
  147.   If you are building a kernel to support the SCSI version of the ZIP
  148.   drive, you should select SCSI support and SCSI disk support.  You must
  149.   also select a driver for the interface card you will use. If you have
  150.   a ZIP Zoom, select the aha152x driver.
  151.  
  152.   Be sure to read the documentation for your adapter in the SCSI HOWTO
  153.   and any README files in the drivers/scsi subdirectory of the Linux
  154.   source tree.  Pay attention to command line parameters that you might
  155.   have to use to help the kernel initialise your adapter.
  156.  
  157.   For instance, if you are using the ZIP Zoom card, you will have to add
  158.   something like
  159.  
  160.           aha152x=0x340,11,7,1
  161.  
  162.   to the boot command (or include it in your /etc/lilo.conf file in an
  163.   append clause).  This tells the driver the port address and IRQ of
  164.   your ZIP Zoom card - be sure to use the numbers that correspond to the
  165.   way your jumpers are set.
  166.  
  167.   You should also read Paul Gortmaker's BOOTPROMPT HOWTO for information
  168.   about configuring your kernel with LILO or LOADLIN.
  169.  
  170.   3.2.  PPA driver for 1.2.13
  171.  
  172.   If you want to use the parallel port ZIP drive with the stable kernel,
  173.   version 1.2.13, you must fetch version 0.18 of the driver which is
  174.   available for anonymous ftp at <ftp://gear.torque.net/pub/ppa.c>
  175.   Installation instructions about how to compile the driver as a
  176.   loadable module are contained in the source for ppa.c.
  177.  
  178.   Please note that you will almost certainly have to build a new kernel.
  179.   In particular, none of the Slackware pre-built kernels will work with
  180.   ppa.  Be careful to build your kernel with SCSI support and SCSI disk
  181.   support, but do not include support for the lp printer driver.  In
  182.   1.2.13 the two drivers cannot co-exist in the same kernel.
  183.  
  184.   You can adjust the port number and some timing parameters on the
  185.   insmod command line when you load the ppa driver.   These adjustments
  186.   are documented in the ppa.c file.  By default the driver assumes that
  187.   the ZIP drive is connected to the parallel port at 0x378.
  188.  
  189.   There will not be any enhancements to this driver for the 1.2.13
  190.   kernel.  You should expect it to disappear a few months after the 2.0
  191.   kernel is released and the major distributions start using it.
  192.  
  193.   3.3.  PPA driver in current kernels
  194.  
  195.   Since version 1.3.74 the ppa driver has been a standard part of the
  196.   kernel.  There were some changes to other parts of the kernel around
  197.   1.3.78 that required an interim workaround, but since 1.3.85 the
  198.   driver has been quite stable at version 0.26.  Since the code-freeze
  199.   for Linux 2.0 is now in effect,  I expect that 0.26 will be in the
  200.   next stable kernel.
  201.  
  202.   To build a kernel with ppa support, include SCSI support, SCSI disk
  203.   support and select the Iomega ZIP / PPA-3 support from the list of
  204.   low-level SCSI adapters.  You can also build the driver as a loadable
  205.   module.
  206.  
  207.   You can use command line parameters in /etc/lilo.conf or with insmod
  208.   to adjust the driver.   This is all documented in
  209.   drivers/scsi/README.ppa in the kernel source tree.  I've included a
  210.   summary in the next section.
  211.  
  212.   If you want to use both the lp and ppa drivers on the same parallel
  213.   port, you must build both as loadable modules and load one or the
  214.   other at any point in time, but not both.
  215.  
  216.   Linux's loadable module features are becoming more powerful, and
  217.   correspondingly more complex, every day.  You should read the file
  218.   Documentation/modules.txt in the kernel source tree, as a starting
  219.   point.
  220.  
  221.   3.4.  PPA command line parameters
  222.  
  223.   If you have ppa built into your kernel, you can adjust its parameters
  224.   from the command line of LILO or LOADLIN with the following syntax:
  225.  
  226.        ppa=base[,speed_high[,speed_low[,nybble]]]
  227.  
  228.   Where base is the i/o address of your parallel port, speed_high is a
  229.   timing constant for certain fast loops in the driver, speed_low is a
  230.   similar timing parameter for some slower loops and nybble is a flag to
  231.   force the driver to use 4-bit, or nybble mode, even if it wants to do
  232.   otherwise.
  233.  
  234.   For an example, the defaults could be specified as:
  235.  
  236.        ppa=0x378,1,6,0
  237.  
  238.   4.  Using the ZIP drive
  239.  
  240.   If you have built in all the required components, the kernel should
  241.   recognise your adapter and drive at boot time.  If you are using a
  242.   loadable module for your driver, the following discussion applies once
  243.   that module is loaded.
  244.  
  245.   For the most part, the SCSI and parallel versions of the drive behave
  246.   identically, except that the parallel version is somewhat slower.
  247.  
  248.   4.1.  Identifying the drive at boot time
  249.  
  250.   When your system boots it should display several pieces of information
  251.   about your adapter, your drive and the disk in the drive.  If you do
  252.   not have a disk in the drive, some of this information will be missing
  253.   and will only appear when you insert a disk and then touch the drive
  254.   (make some attempt to access it).  Beginning users are advised to boot
  255.   their system with a disk in the drive - things are less confusing that
  256.   way !
  257.  
  258.   Exactly where these messages will appear depends on how your system is
  259.   configured.  Often they will be displayed to your system console, but
  260.   they may be diverted into a log file such as /var/adm/messages.
  261.   Usually, you can retrieve the last couple of screens of kernel
  262.   messages with the dmesg command, if you can't find them anywhere else.
  263.  
  264.   If you need to get someone to help you with anything, a copy of this
  265.   log information is critical.  Try to send as many of the relevant log
  266.   messages as you can along with any bug report.
  267.  
  268.   Here is a sample of what the kernel's log messages should look like:
  269.  
  270.        scsi0 : PPA driver version 0.26 using 8-bit mode on port 0x378.
  271.        scsi : 1 host.
  272.          Vendor: IOMEGA    Model: ZIP 100           Rev: N*32
  273.          Type:   Direct-Access                      ANSI SCSI revision: 02
  274.        Detected scsi disk sda at scsi0, channel 0, id 6, lun 0
  275.        scsi : detected 1 SCSI disk total.
  276.        SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1 GB]
  277.          sda: Write Protect is off
  278.        Partition check:
  279.          sda: sda1
  280.  
  281.   This output came from a 1.3.87 system with a parallel ZIP drive.  The
  282.   exact output will vary depending on your host adapter and whether you
  283.   have any other SCSI devices in your system.
  284.  
  285.   The first line displays the initialisation message from the low-level
  286.   driver for the host adapter, in this case PPA. Following that comes
  287.   the drive identification information returned by each device found on
  288.   the SCSI bus. Line 5 reports the device name assigned to the drive, in
  289.   this case /dev/sda.  And the last line hows the result of the
  290.   partition check of the disk in the drive.  This one has one
  291.   partition,/dev/sda1.  These reports come from different modules in the
  292.   kernel, if you have more than one SCSI adapter, or several disks, each
  293.   section will contain more information.
  294.  
  295.   If you are using a fresh disk, direct from Iomega, the partition check
  296.   should show one partition, /dev/sda4.  If you have other SCSI devices
  297.   you will understand that the ZIP drive could appear on some other
  298.   device name like /dev/sdb - so check these messages.
  299.  
  300.   If these lines do not appear, then something is misconfigured in your
  301.   hardware or in the kernel.  Check everything carefully before sending
  302.   mail.
  303.  
  304.   If the scsi0: line does not appear, then you have not configured your
  305.   host adapter and its driver correctly.  Some drivers will give you a
  306.   hint about what is wrong.   If your drive is not detected, you
  307.   probably have a cable problem.  If a drive name is not assigned, you
  308.   probably forgot to include SCSI disk support when you built the
  309.   kernel.
  310.  
  311.   Check the README files in drivers/scsi and the SCSI HOWTO for other
  312.   debugging hints.
  313.  
  314.   4.2.  Fdisk, mke2fs, mount, etc.
  315.  
  316.   Once you know the drive name for your ZIP drive, you are set.  You can
  317.   manipulate the drive with the normal Linux disk management commands.
  318.   fdisk (or perhaps cfdisk) is used to manipulate the partition tables
  319.   on the disk.  mke2fs can be used to format a partition with the ext2
  320.   filesystem - the one most commonly used in Linux.  mount is used to
  321.   connect a formatted partition into your directory hierarchy.
  322.  
  323.   You should study the manual pages for these tools if you are not
  324.   familiar with them.  Be warned that there are now several quite
  325.   different versions of the fdisk program - be careful.
  326.  
  327.   I'll describe two common scenarios.
  328.  
  329.   4.2.1.  An existing DOS formatted disk
  330.  
  331.   If you have a ZIP disk with a DOS file structure that was originally
  332.   created by Iomega's tools, the partition scan should say that the disk
  333.   has one partition, /dev/sda4.
  334.  
  335.   You should make a place to mount the disk, lets say /zip, and then
  336.   mount it as an MS-DOS filesystem:
  337.  
  338.        mkdir /zip
  339.        mount -t msdos /dev/sda4 /zip
  340.  
  341.   Now, the files on the disk should appear in /zip.  While the disk is
  342.   mounted, you will not be able to remove it.  When you are finished
  343.   with the disk you can umount it to release it and detach it from your
  344.   directory hierarchy.
  345.  
  346.        umount /zip
  347.  
  348.   Once you've made the /zip mount point - you don't need to do it again,
  349.   so you could come back later and mount something else there.
  350.  
  351.   4.2.2.  Re-format as a native Linux disk
  352.  
  353.   If you want to erase a ZIP disk and make a Linux native file system on
  354.   it.  you should use fdisk on the entire disk:
  355.  
  356.        fdisk /dev/sda
  357.  
  358.   and delete any existing partitions (with the d command).  Then create
  359.   a new partition with the n command, make it primary partition number
  360.   1, use w to write the partition table to disk, and quit with q.
  361.  
  362.   Format the partition
  363.  
  364.        mke2fs /dev/sda1
  365.  
  366.   (The 1 is the number that you gave this partition in fdisk).  Now you
  367.   can mount the disk:
  368.  
  369.        mount -t ext2 /dev/sda1 /zip
  370.  
  371.   (re-using that mount point we created before).
  372.  
  373.   4.2.3.  The ZIP Tools disk
  374.  
  375.   There is some extra work to be done if you want to use the disk that
  376.   comes with the ZIP drive.  As shipped, the software controlled write
  377.   protection is enabled.  Most people have unlocked the disk under DOS
  378.   before ever trying to use it with Linux.  Linux cannot access a locked
  379.   disk, and it must be unlocked with Iomega's tools.
  380.  
  381.   A native Linux program to manage the write protection feature, among
  382.   other things, is expected to be available soon.
  383.  
  384.   4.3.  Ejecting a disk
  385.  
  386.   You can only eject a disk when it is dismounted.  Currently, there is
  387.   no Linux command to eject the disk, so you must press the button on
  388.   the front of the drive to eject the disk.
  389.  
  390.   Linux ensures that all data have been written to the disk before it is
  391.   unlocked.
  392.  
  393.   Watch for a new ZIP tools program for Linux which will support some of
  394.   Iomega's special features (including software controlled ejection and
  395.   write protection) on both the SCSI and parallel versions of the drive.
  396.  
  397.   5.  Frequently asked questions
  398.  
  399.   These are some of the questions that we get asked a lot.  Please read
  400.   the answers here before asking them again !
  401.  
  402.   5.1.  Can I boot from the ZIP drive ?
  403.  
  404.   This depends on what you are using for a host adapter.  If your host
  405.   adapter has a BIOS ROM with code that can boot from target 5 or 6,
  406.   then yes, you can boot from the SCSI ZIP drive.  You cannot boot from
  407.   a parallel port drive.
  408.  
  409.   If you have DOS on your main disk and want to boot Linux from a ZIP
  410.   disk, you can do this using the LOADLIN boot loader.  Your kernel
  411.   image must be somewhere on the DOS disk, but the rest of your Linux
  412.   system could be on the ZIP.  Make sure that the kernel you use has the
  413.   correct drivers built in.
  414.  
  415.   As far as I am aware, there are no installation boot floppies for any
  416.   of the popular distributions that contain the parallel ZIP driver, but
  417.   this may change when Linux 2.0 comes out.
  418.  
  419.   5.2.  Why does Iomega use partition number 4 ?
  420.  
  421.   This is one of the most popular questions, but I don't think anyone
  422.   has a definite answer to this one.  Maybe there is no good reason.
  423.  
  424.   5.3.  How can I have the disk mounted at boot time ?
  425.  
  426.   All you need to do is to add a line to your /etc/fstab file.  For
  427.   instance, if you will always have a DOS disk in the drive when you
  428.   boot, you could put
  429.  
  430.        /dev/sda4   /zip  msdos  defaults  0 0
  431.  
  432.   in the fstab.  Depending on your distribution, the initialisation
  433.   scripts might try to run fsck on partitions listed in your fstab.  Be
  434.   aware that this could cause problems if you forget to put the disk in
  435.   the drive when you boot, or have the wrong disk there.
  436.  
  437.   5.4.  What happens if there is no disk inserted when I boot ?
  438.  
  439.   The kernel will try to read the partition table, but the operation
  440.   will time out.  There is nothing to worry about.  Once you have
  441.   inserted a disk, and try to do something with it the kernel will
  442.   notice that there is a disk there now and rescan the partition table.
  443.  
  444.   HINT: when you change disks, it is a good idea always to use fdisk to
  445.   check the partition structure on the new disk.
  446.  
  447.   The BIOS on some SCSI host adapters will attempt to read the partition
  448.   table on your disk during the system boot.  If you cannot disable this
  449.   check, you may be forced always to boot with a disk in the drive.
  450.  
  451.   5.5.  What SCSI adapters are compatible with the ZIP drive ?
  452.  
  453.   Iomega has a list of compatible host adapters at:
  454.  
  455.        <http://www.iomega.com/techs/zip/what063.html>
  456.  
  457.   5.6.  Can I use the parallel drive as a real SCSI disk ?
  458.  
  459.   The PPA-3 parallel-to-SCSI adapter is implemented as a single ASIC
  460.   chip that Iomega calls a VPI0.  It is embedded on the ZIP drive's
  461.   controller card.  There is an actual SCSI bus present, but not in a
  462.   useful form.
  463.  
  464.   Although I haven't tried to compare the two cards, it seems logical
  465.   that the VPI0 replaces the conventional electrical buffering circuits
  466.   that would be required if the SCSI bus were extended outside the
  467.   package.
  468.   5.7.  Can I plug a printer into the parallel drive ?
  469.  
  470.   Yes, but.  Currently, you cannot have both the lp and ppa drivers
  471.   active on the same parallel port.  A resource sharing protocol has
  472.   been designed and is in the early stages of implementation, but will
  473.   not be available before Linux 2.0 is released.
  474.  
  475.   In the meantime, if you do chain a printer and a ZIP drive, you can
  476.   use them both without rebooting your system, providing you have built
  477.   the lp and ppa drivers as loadable modules.  If you have done so, then
  478.   when you want to print you would insmod the lp driver, and when you
  479.   want to access the ZIP drive you would load the ppa driver.
  480.  
  481.   Of course, if you have two parallel ports, you can use one for
  482.   printing and one for your ZIP drive.  Just build a kernel with both
  483.   the lp and ppa drivers included, then put some appropriate
  484.   configuration commands on your kernel command line.  For instance, if
  485.   you use LILO and you have a printer on 0x378 and a ZIP drive at 0x3bc
  486.   you could add the following line to your /etc/lilo.conf file.
  487.  
  488.        append = "lp=0x378 ppa=0x3bc"
  489.  
  490.   5.8.  Do you plan to support EPP/ECP ports in PPA ?
  491.  
  492.   ppa was initially developed without the benefit of any technical
  493.   specifications for the command protocol on the parallel bus.  Instead,
  494.   the DOS emulator was used to gather information to reverse engineer
  495.   the protocol.  It was not possible to get the drive to work in an
  496.   enhanced mode under the emulator.
  497.  
  498.   An Iomega technical reference manual is now available, and I have
  499.   located a data sheet for an enhanced parallel port chip, so it may be
  500.   possible to upgrade the driver.
  501.  
  502.   5.9.  Can PPA be used with Iomega's parallel port tape drives ?
  503.  
  504.   No.  Those drives are floppy-tape drives, there is no SCSI involved.
  505.  
  506.   Several people have indicated an interest in applying my methods to
  507.   try to determine the protocol and develop a driver for these tapes.
  508.   The first step in that process is to get the DOS driver working under
  509.   DOSemu.  I have not yet heard that anyone has been successful in doing
  510.   it.
  511.  
  512.   5.10.  Will PPA work with the parallel port SyQuest EZ135 ?
  513.  
  514.   No. The EZ135 is an IDE drive with a ShuttlePort parallel to IDE
  515.   converter embedded in it.
  516.  
  517.   Work has begun on decoding the protocol with the intention of writing
  518.   a Linux driver for the parallel port EZ135.  I have the basic protocol
  519.   worked out, but I have no idea when a driver might be completed.
  520.  
  521.   Keep an eye on my web page <http://www.torque.net/ez135.html>, I will
  522.   eventually be looking for some beta testers.
  523.  
  524.   6.  Getting more current information
  525.  
  526.   I will try to keep an up-to-date version of this mini-HOWTO available
  527.   on my web pages.  You can check it out at
  528.  
  529.        <http://www.torque.net/zip.html>.
  530.  
  531.   There is a more general ZIP FAQ web page (with a definite Macintosh
  532.   bias) at
  533.  
  534.        <http://earth.cnct.com/home/steveg/zip.html>.
  535.  
  536.   Iomega's web pages are at
  537.  
  538.        <http://www.iomega.com/>.
  539.  
  540.   And if you are looking for general information about parallel port
  541.   programming for the PC, you might want to visit
  542.  
  543.        <http://www.lvr.com/parport.htm>
  544.  
  545.